Skip to content

refactor: clients section to dynamically fetch from app-directory#5380

Open
eduardomozart wants to merge 5 commits into
LizardByte:masterfrom
eduardomozart:feat/refactor-clients
Open

refactor: clients section to dynamically fetch from app-directory#5380
eduardomozart wants to merge 5 commits into
LizardByte:masterfrom
eduardomozart:feat/refactor-clients

Conversation

@eduardomozart

@eduardomozart eduardomozart commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Description

This PR refactors the gh-pages-template to dynamically fetch client information from the centralized sunshine.json directory rather than relying on a static clients.yml file.

  • Emptied gh-pages-template/_data/clients.yml as its static data is no longer necessary.
  • Updated gh-pages-template/index.html to fetch https://app.lizardbyte.dev/app-directory/sunshine.json and build the client DOM dynamically using JavaScript.
  • Added front-end heuristics to retain identical visual parity (dynamically computing styles for correct badges for Google Play, Apple App Store, Amazon, F-Droid, and precise download icons) without modifying or requiring non-standard fields in the strict sunshine.json schema.

Note: This PR requires LizardByte/app-directory#40 to be merged first, as it relies on the newly defined icons and downloads schema in sunshine.json.

Screenshot

image

Issues Fixed or Closed

Roadmap Issues

Type of Change

  • feat: New feature (non-breaking change which adds functionality)
  • fix: Bug fix (non-breaking change which fixes an issue)
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.)
  • refactor: Code change that neither fixes a bug nor adds a feature
  • perf: Code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • build: Changes that affect the build system or external dependencies
  • ci: Changes to CI configuration files and scripts
  • chore: Other changes that don't modify src or test files
  • revert: Reverts a previous commit
  • BREAKING CHANGE: Introduces a breaking change (can be combined with any type above)

Checklist

  • Code follows the style guidelines of this project
  • Code has been self-reviewed
  • Code has been commented, particularly in hard-to-understand areas
  • Code docstring/documentation-blocks for new or existing methods/components have been added or updated
  • Unit tests have been added or updated for any new or modified functionality

AI Usage

  • None: No AI tools were used in creating this PR
  • Light: AI provided minor assistance (formatting, simple suggestions)
  • Moderate: AI helped with code generation or debugging specific parts
  • Heavy: AI generated most or all of the code changes

@ReenigneArcher ReenigneArcher left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR!

I will wait to run CI as there is an ongoing issue with sonar at the moment. https://community.sonarsource.com/t/sonar-seems-to-now-be-including-submodules-when-scanning-please-revert/184681

Could you also update the featured apps section in the web-ui to use the download images (like for Microsoft Store and Apple Store) when available?

Comment thread gh-pages-template/_data/clients.yml Outdated
@eduardomozart eduardomozart changed the title Refactor clients section to dynamically fetch from sunshine.json refactor: clients section to dynamically fetch from sunshine.json Jul 5, 2026
@eduardomozart

Copy link
Copy Markdown
Contributor Author

Done!

@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 417 bytes (0.02%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
sunshine-esm 859.6kB 417 bytes (0.05%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: sunshine-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/featured-*.js 417 bytes 30.1kB 1.4%

Files in assets/featured-*.js:

  • ./src_assets/common/assets/web/featured.html → Total Size: 0 bytes

@ReenigneArcher ReenigneArcher changed the title refactor: clients section to dynamically fetch from sunshine.json refactor: clients section to dynamically fetch from app-directory Jul 23, 2026
Comment thread src_assets/common/assets/web/featured.html Fixed

@ReenigneArcher ReenigneArcher left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the delay on the review.

Looks like there's some lint errors, as well as CodeQL issues to resolve. The CodeQL is going to be pretty strict about url parsing, so those should be hardened to ensure the urls start with what's expected. Probably better to use a URL object (https://itsourcecode.com/javascript-tutorial/how-javascript-get-domain-from-url-4-methods/)

@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (master@c6bef33). Learn more about missing BASE report.
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##             master    #5380   +/-   ##
=========================================
  Coverage          ?   26.87%           
=========================================
  Files             ?      111           
  Lines             ?    25406           
  Branches          ?    11232           
=========================================
  Hits              ?     6827           
  Misses            ?    15352           
  Partials          ?     3227           
Flag Coverage Δ
Archlinux 0.00% <ø> (?)
FreeBSD-amd64 13.21% <ø> (?)
Homebrew-macos-14 20.28% <ø> (?)
Homebrew-macos-15 20.46% <ø> (?)
Homebrew-macos-26 21.04% <ø> (?)
Homebrew-ubuntu-24.04 12.91% <ø> (?)
Linux-AppImage 12.25% <ø> (?)
Windows-AMD64 15.18% <ø> (?)
Windows-ARM64 13.22% <ø> (?)
macOS-arm64 17.69% <ø> (?)
macOS-x86_64 18.36% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c6bef33...bdffbe9. Read the comment docs.

@eduardomozart eduardomozart left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No problem. I've updated the PR with the requested changes. Tested and working as expected.

Comment thread gh-pages-template/index.html Outdated

@eduardomozart eduardomozart left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied a fix. It seems to be working just fine on my side.

@ReenigneArcher
ReenigneArcher force-pushed the feat/refactor-clients branch from be3e5c0 to bdffbe9 Compare July 23, 2026 13:46
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 New issue
1 New Code Smells (required ≤ 0)

See analysis details on SonarQube Cloud

💡 Need a hand with PR review? Try Gitar by Sonar!

@ReenigneArcher

Copy link
Copy Markdown
Member

Thanks! I'll test out the web-ui shortly and if no issues I think this is good to go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants